home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / source / music4c.sit / Music4C Folder / Sources Folder / pass2.c < prev    next >
MacBinary  |  1990-06-19  |  10.5 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Mon Jun 18 22:59:17 1990, modified Mon Jun 18 22:59:17 1990, creator Think C, type ASCII, 10134 bytes "pass2.c" , at 0x2816 348 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 07 70 61 73 73 32 2e | 63 00 00 00 00 00 00 00 |..pass2.|c.......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 00 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 27 96 00 | 00 01 5c a2 a3 45 85 a2 |.....'..|..\..E..|
|00000060| a3 45 85 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.E......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 ef f1 00 00 |........|........|
|00000080| 2f 2a 0d 2a 20 a9 20 47 | 72 61 65 6d 65 20 47 65 |/*.* . G|raeme Ge|
|00000090| 72 72 61 72 64 20 31 39 | 39 30 0d 2a 20 46 61 63 |rrard 19|90.* Fac|
|000000a0| 75 6c 74 79 20 6f 66 20 | 4d 75 73 69 63 2c 20 55 |ulty of |Music, U|
|000000b0| 6e 69 76 65 72 73 69 74 | 79 20 6f 66 20 4d 65 6c |niversit|y of Mel|
|000000c0| 62 6f 75 72 6e 65 0d 2a | 20 50 61 72 6b 76 69 6c |bourne.*| Parkvil|
|000000d0| 6c 65 20 56 69 63 74 6f | 72 69 61 20 33 30 35 32 |le Victo|ria 3052|
|000000e0| 20 41 75 73 74 72 61 6c | 69 61 2e 0d 2a 0d 2a 20 | Austral|ia..*.* |
|000000f0| 41 52 50 41 4e 45 54 3a | 20 67 72 61 65 40 6d 75 |ARPANET:| grae@mu|
|00000100| 72 64 75 2e 75 63 73 2e | 75 6e 69 6d 65 6c 62 2e |rdu.ucs.|unimelb.|
|00000110| 65 64 75 2e 61 75 0d 2a | 20 74 65 6c 65 70 68 6f |edu.au.*| telepho|
|00000120| 6e 65 3a 20 28 36 31 33 | 29 20 33 34 34 20 34 31 |ne: (613|) 344 41|
|00000130| 32 37 2c 20 46 61 78 3a | 20 28 36 31 33 29 20 33 |27, Fax:| (613) 3|
|00000140| 34 34 20 35 33 34 36 0d | 2a 2f 0d 0d 0d 23 69 6e |44 5346.|*/...#in|
|00000150| 63 6c 75 64 65 09 22 4d | 75 73 69 63 34 43 2e 68 |clude."M|usic4C.h|
|00000160| 22 0d 23 69 6e 63 6c 75 | 64 65 09 22 4d 75 73 69 |".#inclu|de."Musi|
|00000170| 63 34 43 5f 50 72 6f 74 | 6f 74 79 70 65 2e 68 22 |c4C_Prot|otype.h"|
|00000180| 0d 23 69 6e 63 6c 75 64 | 65 09 22 45 72 72 6f 72 |.#includ|e."Error|
|00000190| 41 6c 65 72 74 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |Alert.h"|.#includ|
|000001a0| 65 09 3c 6d 61 74 68 2e | 68 3e 0d 0d 69 6e 74 09 |e.<math.|h>..int.|
|000001b0| 6d 61 78 5f 69 6e 73 5f | 74 79 70 65 73 3b 0d 65 |max_ins_|types;.e|
|000001c0| 78 74 65 72 6e 09 69 6e | 74 09 6f 75 74 32 5f 66 |xtern.in|t.out2_f|
|000001d0| 6c 61 67 3b 0d 65 78 74 | 65 72 6e 09 4f 53 45 72 |lag;.ext|ern.OSEr|
|000001e0| 72 09 74 68 65 45 72 72 | 3b 0d 0d 45 76 65 6e 74 |r.theErr|;..Event|
|000001f0| 09 2a 77 61 72 70 5f 74 | 65 6d 70 6f 28 64 6f 75 |.*warp_t|empo(dou|
|00000200| 62 6c 65 20 2a 2c 20 45 | 76 65 6e 74 20 2a 29 3b |ble *, E|vent *);|
|00000210| 0d 76 6f 69 64 09 64 6f | 5f 73 6b 69 70 5f 69 6e |.void.do|_skip_in|
|00000220| 73 74 72 5f 74 65 6d 70 | 6f 28 64 6f 75 62 6c 65 |str_temp|o(double|
|00000230| 20 2a 2c 20 64 6f 75 62 | 6c 65 2c 20 45 76 65 6e | *, doub|le, Even|
|00000240| 74 20 2a 29 3b 0d 76 6f | 69 64 09 64 6f 5f 6f 6e |t *);.vo|id.do_on|
|00000250| 65 5f 69 6e 73 74 72 5f | 74 65 6d 70 6f 28 64 6f |e_instr_|tempo(do|
|00000260| 75 62 6c 65 20 2a 2c 20 | 64 6f 75 62 6c 65 2c 20 |uble *, |double, |
|00000270| 45 76 65 6e 74 20 2a 29 | 3b 0d 76 6f 69 64 09 64 |Event *)|;.void.d|
|00000280| 6f 5f 61 6c 6c 5f 74 65 | 6d 70 6f 28 64 6f 75 62 |o_all_te|mpo(doub|
|00000290| 6c 65 20 2a 2c 20 45 76 | 65 6e 74 20 2a 29 3b 0d |le *, Ev|ent *);.|
|000002a0| 64 6f 75 62 6c 65 09 63 | 6f 6e 76 28 20 64 6f 75 |double.c|onv( dou|
|000002b0| 62 6c 65 2c 20 64 6f 75 | 62 6c 65 09 2a 2c 20 69 |ble, dou|ble.*, i|
|000002c0| 6e 74 09 2a 2c 20 64 6f | 75 62 6c 65 09 2a 20 29 |nt.*, do|uble.* )|
|000002d0| 3b 0d 76 6f 69 64 09 72 | 65 6e 75 6d 62 65 72 28 |;.void.r|enumber(|
|000002e0| 45 76 65 6e 74 20 2a 29 | 3b 0d 45 76 65 6e 74 20 |Event *)|;.Event |
|000002f0| 09 2a 52 65 53 6f 72 74 | 4c 69 73 74 28 45 76 65 |.*ReSort|List(Eve|
|00000300| 6e 74 20 2a 29 3b 0d 76 | 6f 69 64 09 50 63 68 65 |nt *);.v|oid.Pche|
|00000310| 63 6b 5f 6c 69 73 74 28 | 45 76 65 6e 74 20 2a 29 |ck_list(|Event *)|
|00000320| 3b 0d 0d 0d 45 76 65 6e | 74 09 2a 77 61 72 70 5f |;...Even|t.*warp_|
|00000330| 74 65 6d 70 6f 28 74 63 | 61 72 64 2c 20 6c 69 73 |tempo(tc|ard, lis|
|00000340| 74 29 0d 09 64 6f 75 62 | 6c 65 09 74 63 61 72 64 |t)..doub|le.tcard|
|00000350| 5b 5d 3b 0d 09 45 76 65 | 6e 74 09 2a 6c 69 73 74 |[];..Eve|nt.*list|
|00000360| 3b 0d 7b 0d 09 45 76 65 | 6e 74 09 2a 74 6d 70 3b |;.{..Eve|nt.*tmp;|
|00000370| 0d 09 64 6f 75 62 6c 65 | 20 69 6e 73 3b 0d 09 69 |..double| ins;..i|
|00000380| 66 20 28 20 2a 74 63 61 | 72 64 20 3c 20 30 20 29 |f ( *tca|rd < 0 )|
|00000390| 20 7b 0d 09 09 69 6e 73 | 20 3d 20 2d 28 2a 74 63 | {...ins| = -(*tc|
|000003a0| 61 72 64 29 3b 0d 09 09 | 2a 74 63 61 72 64 20 3d |ard);...|*tcard =|
|000003b0| 20 30 2e 30 3b 0d 09 09 | 64 6f 5f 73 6b 69 70 5f | 0.0;...|do_skip_|
|000003c0| 69 6e 73 74 72 5f 74 65 | 6d 70 6f 28 74 63 61 72 |instr_te|mpo(tcar|
|000003d0| 64 2c 20 69 6e 73 2c 20 | 6c 69 73 74 29 3b 0d 09 |d, ins, |list);..|
|000003e0| 7d 0d 09 65 6c 73 65 20 | 69 66 20 28 20 2a 74 63 |}..else |if ( *tc|
|000003f0| 61 72 64 20 3e 20 30 20 | 29 20 7b 0d 09 09 69 6e |ard > 0 |) {...in|
|00000400| 73 20 3d 20 2a 74 63 61 | 72 64 3b 0d 09 09 2a 74 |s = *tca|rd;...*t|
|00000410| 63 61 72 64 20 3d 20 30 | 2e 30 3b 0d 09 09 64 6f |card = 0|.0;...do|
|00000420| 5f 6f 6e 65 5f 69 6e 73 | 74 72 5f 74 65 6d 70 6f |_one_ins|tr_tempo|
|00000430| 28 74 63 61 72 64 2c 20 | 69 6e 73 2c 20 6c 69 73 |(tcard, |ins, lis|
|00000440| 74 29 3b 0d 09 7d 0d 09 | 65 6c 73 65 0d 09 09 64 |t);..}..|else...d|
|00000450| 6f 5f 61 6c 6c 5f 74 65 | 6d 70 6f 28 74 63 61 72 |o_all_te|mpo(tcar|
|00000460| 64 2c 20 6c 69 73 74 29 | 3b 0d 09 6c 69 73 74 20 |d, list)|;..list |
|00000470| 3d 20 52 65 53 6f 72 74 | 4c 69 73 74 28 6c 69 73 |= ReSort|List(lis|
|00000480| 74 29 3b 0d 09 72 65 74 | 75 72 6e 28 6c 69 73 74 |t);..ret|urn(list|
|00000490| 29 3b 0d 7d 0d 0d 0d 0d | 0d 0d 76 6f 69 64 09 64 |);.}....|..void.d|
|000004a0| 6f 5f 73 6b 69 70 5f 69 | 6e 73 74 72 5f 74 65 6d |o_skip_i|nstr_tem|
|000004b0| 70 6f 28 74 63 61 72 64 | 2c 20 69 6e 73 2c 20 6c |po(tcard|, ins, l|
|000004c0| 69 73 74 29 0d 09 64 6f | 75 62 6c 65 09 74 63 61 |ist)..do|uble.tca|
|000004d0| 72 64 5b 5d 3b 0d 09 45 | 76 65 6e 74 09 2a 6c 69 |rd[];..E|vent.*li|
|000004e0| 73 74 3b 0d 09 64 6f 75 | 62 6c 65 20 69 6e 73 3b |st;..dou|ble ins;|
|000004f0| 0d 7b 0d 2f 2a 20 73 6b | 69 70 73 20 69 6e 73 74 |.{./* sk|ips inst|
|00000500| 72 75 6d 65 6e 74 20 67 | 69 76 65 6e 20 69 6e 20 |rument g|iven in |
|00000510| 2a 74 63 61 72 64 20 2a | 2f 0d 09 45 76 65 6e 74 |*tcard *|/..Event|
|00000520| 09 2a 63 75 72 73 6f 72 | 3b 0d 09 64 6f 75 62 6c |.*cursor|;..doubl|
|00000530| 65 09 70 72 65 76 74 69 | 6d 65 2c 20 54 5f 70 72 |e.prevti|me, T_pr|
|00000540| 65 76 74 69 6d 65 3b 0d | 09 69 6e 74 09 09 69 74 |evtime;.|.int..it|
|00000550| 2c 20 54 5f 69 74 3b 0d | 09 64 6f 75 62 6c 65 09 |, T_it;.|.double.|
|00000560| 78 3b 0d 09 64 6f 75 62 | 6c 65 09 79 3b 0d 09 64 |x;..doub|le.y;..d|
|00000570| 6f 75 62 6c 65 09 73 3b | 0d 0d 09 70 72 65 76 74 |ouble.s;|...prevt|
|00000580| 69 6d 65 20 3d 20 30 2e | 30 3b 0d 09 69 74 20 3d |ime = 0.|0;..it =|
|00000590| 20 30 3b 0d 09 63 75 72 | 73 6f 72 20 3d 20 6c 69 | 0;..cur|sor = li|
|000005a0| 73 74 3b 0d 09 77 68 69 | 6c 65 20 28 20 63 75 72 |st;..whi|le ( cur|
|000005b0| 73 6f 72 20 21 3d 20 4e | 49 4c 20 29 20 7b 0d 09 |sor != N|IL ) {..|
|000005c0| 09 2f 2a 20 74 61 6b 65 | 20 6f 66 66 20 61 20 62 |./* take| off a b|
|000005d0| 69 74 20 66 6f 72 20 74 | 72 75 6e 63 61 74 69 6f |it for t|runcatio|
|000005e0| 6e 2f 72 6f 75 6e 64 69 | 6e 67 20 65 72 72 6f 72 |n/roundi|ng error|
|000005f0| 73 20 2a 2f 0d 09 09 69 | 66 20 28 20 63 75 72 73 |s */...i|f ( curs|
|00000600| 6f 72 2d 3e 6f 70 20 3d | 3d 20 45 4f 50 20 7c 7c |or->op =|= EOP |||
|00000610| 20 63 75 72 73 6f 72 2d | 3e 6f 70 20 3d 3d 20 53 | cursor-|>op == S|
|00000620| 4f 50 29 20 7b 0d 09 09 | 09 67 6f 74 6f 20 4e 65 |OP) {...|.goto Ne|
|00000630| 78 74 5f 30 3b 0d 09 09 | 7d 0d 09 09 69 66 20 28 |xt_0;...|}...if (|
|00000640| 20 63 75 72 73 6f 72 2d | 3e 6f 70 20 3d 3d 20 49 | cursor-|>op == I|
|00000650| 4f 50 29 20 7b 0d 09 09 | 09 69 66 20 28 20 28 69 |OP) {...|.if ( (i|
|00000660| 6e 74 29 2a 28 63 75 72 | 73 6f 72 2d 3e 70 70 74 |nt)*(cur|sor->ppt|
|00000670| 72 29 20 3d 3d 20 69 6e | 73 20 29 0d 09 09 09 09 |r) == in|s ).....|
|00000680| 67 6f 74 6f 20 4e 65 78 | 74 5f 30 3b 0d 09 09 09 |goto Nex|t_0;....|
|00000690| 73 20 3d 20 2a 28 63 75 | 72 73 6f 72 2d 3e 70 70 |s = *(cu|rsor->pp|
|000006a0| 74 72 2b 32 29 3b 0d 09 | 09 7d 0d 09 09 65 6c 73 |tr+2);..|.}...els|
|000006b0| 65 0d 09 09 09 73 20 3d | 20 2a 28 63 75 72 73 6f |e....s =| *(curso|
|000006c0| 72 2d 3e 70 70 74 72 2b | 31 29 3b 0d 09 09 78 20 |r->pptr+|1);...x |
|000006d0| 3d 20 73 3b 0d 09 09 69 | 66 20 28 20 73 20 3e 20 |= s;...i|f ( s > |
|000006e0| 30 2e 30 20 29 0d 09 09 | 09 78 20 3d 20 73 20 2d |0.0 )...|.x = s -|
|000006f0| 20 30 2e 30 30 30 30 30 | 30 32 35 3b 0d 09 09 73 | 0.00000|025;...s|
|00000700| 20 3d 20 63 6f 6e 76 28 | 78 2c 20 74 63 61 72 64 | = conv(|x, tcard|
|00000710| 2c 20 26 69 74 2c 20 26 | 70 72 65 76 74 69 6d 65 |, &it, &|prevtime|
|00000720| 29 3b 0d 09 09 69 66 20 | 28 20 63 75 72 73 6f 72 |);...if |( cursor|
|00000730| 2d 3e 6f 70 20 3d 3d 20 | 49 4f 50 20 29 0d 09 09 |->op == |IOP )...|
|00000740| 09 2a 28 63 75 72 73 6f | 72 2d 3e 70 70 74 72 2b |.*(curso|r->pptr+|
|00000750| 32 29 20 3d 20 73 3b 0d | 09 09 65 6c 73 65 0d 09 |2) = s;.|..else..|
|00000760| 09 09 2a 28 63 75 72 73 | 6f 72 2d 3e 70 70 74 72 |..*(curs|or->pptr|
|00000770| 2b 31 29 20 3d 20 73 3b | 0d 09 09 69 66 20 28 20 |+1) = s;|...if ( |
|00000780| 63 75 72 73 6f 72 2d 3e | 6f 70 20 3d 3d 20 49 4f |cursor->|op == IO|
|00000790| 50 20 29 20 7b 0d 09 09 | 09 79 20 3d 20 2a 28 63 |P ) {...|.y = *(c|
|000007a0| 75 72 73 6f 72 2d 3e 70 | 70 74 72 2b 33 29 20 2d |ursor->p|ptr+3) -|
|000007b0| 20 30 2e 30 30 30 30 30 | 30 36 3b 0d 09 09 09 54 | 0.00000|06;....T|
|000007c0| 5f 69 74 20 3d 20 69 74 | 3b 0d 09 09 09 54 5f 70 |_it = it|;....T_p|
|000007d0| 72 65 76 74 69 6d 65 20 | 3d 20 70 72 65 76 74 69 |revtime |= prevti|
|000007e0| 6d 65 3b 0d 09 09 09 2a | 28 63 75 72 73 6f 72 2d |me;....*|(cursor-|
|000007f0| 3e 70 70 74 72 2b 33 29 | 20 3d 20 63 6f 6e 76 28 |>pptr+3)| = conv(|
|00000800| 78 2b 79 2c 20 74 63 61 | 72 64 2c 20 26 54 5f 69 |x+y, tca|rd, &T_i|
|00000810| 74 2c 20 26 54 5f 70 72 | 65 76 74 69 6d 65 29 20 |t, &T_pr|evtime) |
|00000820| 2d 0d 09 09 09 09 09 09 | 2a 28 63 75 72 73 6f 72 |-.......|*(cursor|
|00000830| 2d 3e 70 70 74 72 2b 32 | 29 3b 0d 09 09 7d 0d 4e |->pptr+2|);...}.N|
|00000840| 65 78 74 5f 30 3a 0d 09 | 09 63 75 72 73 6f 72 20 |ext_0:..|.cursor |
|00000850| 3d 20 63 75 72 73 6f 72 | 2d 3e 6e 65 78 74 3b 0d |= cursor|->next;.|
|00000860| 09 7d 0d 7d 0d 0d 76 6f | 69 64 09 64 6f 5f 6f 6e |.}.}..vo|id.do_on|
|00000870| 65 5f 69 6e 73 74 72 5f | 74 65 6d 70 6f 28 74 63 |e_instr_|tempo(tc|
|00000880| 61 72 64 2c 20 69 6e 73 | 2c 20 6c 69 73 74 29 0d |ard, ins|, list).|
|00000890| 09 64 6f 75 62 6c 65 09 | 74 63 61 72 64 5b 5d 3b |.double.|tcard[];|
|000008a0| 0d 09 45 76 65 6e 74 09 | 2a 6c 69 73 74 3b 0d 09 |..Event.|*list;..|
|000008b0| 64 6f 75 62 6c 65 09 69 | 6e 73 3b 0d 7b 0d 09 45 |double.i|ns;.{..E|
|000008c0| 76 65 6e 74 09 2a 63 75 | 72 73 6f 72 3b 0d 09 64 |vent.*cu|rsor;..d|
|000008d0| 6f 75 62 6c 65 09 70 72 | 65 76 74 69 6d 65 2c 20 |ouble.pr|evtime, |
|000008e0| 54 5f 70 72 65 76 74 69 | 6d 65 3b 0d 09 69 6e 74 |T_prevti|me;..int|
|000008f0| 09 09 69 74 2c 20 54 5f | 69 74 3b 0d 09 64 6f 75 |..it, T_|it;..dou|
|00000900| 62 6c 65 09 78 3b 0d 09 | 64 6f 75 62 6c 65 09 79 |ble.x;..|double.y|
|00000910| 3b 0d 09 64 6f 75 62 6c | 65 09 73 3b 0d 0d 09 70 |;..doubl|e.s;...p|
|00000920| 72 65 76 74 69 6d 65 20 | 3d 20 30 2e 30 3b 0d 09 |revtime |= 0.0;..|
|00000930| 69 74 20 3d 20 30 3b 0d | 0d 09 63 75 72 73 6f 72 |it = 0;.|..cursor|
|00000940| 20 3d 20 6c 69 73 74 3b | 0d 09 77 68 69 6c 65 20 | = list;|..while |
|00000950| 28 20 63 75 72 73 6f 72 | 20 21 3d 20 4e 49 4c 20 |( cursor| != NIL |
|00000960| 29 20 7b 0d 09 09 2f 2a | 20 74 61 6b 65 20 6f 66 |) {.../*| take of|
|00000970| 66 20 61 20 62 69 74 20 | 66 6f 72 20 74 72 75 6e |f a bit |for trun|
|00000980| 63 61 74 69 6f 6e 2f 72 | 6f 75 6e 64 69 6e 67 20 |cation/r|ounding |
|00000990| 65 72 72 6f 72 73 20 2a | 2f 0d 09 09 69 66 20 28 |errors *|/...if (|
|000009a0| 20 63 75 72 73 6f 72 2d | 3e 6f 70 20 3d 3d 20 45 | cursor-|>op == E|
|000009b0| 4f 50 20 7c 7c 20 63 75 | 72 73 6f 72 2d 3e 6f 70 |OP || cu|rsor->op|
|000009c0| 20 3d 3d 20 53 4f 50 29 | 20 7b 0d 09 09 09 67 6f | == SOP)| {....go|
|000009d0| 74 6f 20 4e 65 78 74 5f | 31 3b 0d 09 09 7d 0d 09 |to Next_|1;...}..|
|000009e0| 09 69 66 20 28 20 63 75 | 72 73 6f 72 2d 3e 6f 70 |.if ( cu|rsor->op|
|000009f0| 20 3d 3d 20 49 4f 50 20 | 29 20 7b 0d 09 09 09 69 | == IOP |) {....i|
|00000a00| 66 20 28 20 28 69 6e 74 | 29 2a 28 63 75 72 73 6f |f ( (int|)*(curso|
|00000a10| 72 2d 3e 70 70 74 72 29 | 20 21 3d 20 69 6e 73 29 |r->pptr)| != ins)|
|00000a20| 0d 09 09 09 09 67 6f 74 | 6f 20 4e 65 78 74 5f 31 |.....got|o Next_1|
|00000a30| 3b 0d 09 09 09 73 20 3d | 20 2a 28 63 75 72 73 6f |;....s =| *(curso|
|00000a40| 72 2d 3e 70 70 74 72 2b | 32 29 3b 0d 09 09 7d 0d |r->pptr+|2);...}.|
|00000a50| 09 09 65 6c 73 65 0d 09 | 09 09 73 20 3d 20 2a 28 |..else..|..s = *(|
|00000a60| 63 75 72 73 6f 72 2d 3e | 70 70 74 72 2b 31 29 3b |cursor->|pptr+1);|
|00000a70| 0d 09 09 78 20 3d 20 73 | 3b 0d 09 09 69 66 20 28 |...x = s|;...if (|
|00000a80| 20 73 20 3e 20 30 2e 30 | 20 29 0d 09 09 09 78 20 | s > 0.0| )....x |
|00000a90| 3d 20 73 20 2d 20 30 2e | 30 30 30 30 30 30 32 35 |= s - 0.|00000025|
|00000aa0| 3b 0d 09 09 73 20 3d 20 | 63 6f 6e 76 28 78 2c 20 |;...s = |conv(x, |
|00000ab0| 74 63 61 72 64 2c 20 26 | 69 74 2c 20 26 70 72 65 |tcard, &|it, &pre|
|00000ac0| 76 74 69 6d 65 29 3b 0d | 09 09 69 66 20 28 20 63 |vtime);.|..if ( c|
|00000ad0| 75 72 73 6f 72 2d 3e 6f | 70 20 3d 3d 20 49 4f 50 |ursor->o|p == IOP|
|00000ae0| 20 29 0d 09 09 09 2a 28 | 63 75 72 73 6f 72 2d 3e | )....*(|cursor->|
|00000af0| 70 70 74 72 2b 32 29 20 | 3d 20 73 3b 0d 09 09 65 |pptr+2) |= s;...e|
|00000b00| 6c 73 65 0d 09 09 09 2a | 28 63 75 72 73 6f 72 2d |lse....*|(cursor-|
|00000b10| 3e 70 70 74 72 2b 31 29 | 20 3d 20 73 3b 0d 09 09 |>pptr+1)| = s;...|
|00000b20| 69 66 20 28 20 63 75 72 | 73 6f 72 2d 3e 6f 70 20 |if ( cur|sor->op |
|00000b30| 3d 3d 20 49 4f 50 20 29 | 20 7b 0d 09 09 09 79 20 |== IOP )| {....y |
|00000b40| 3d 20 2a 28 63 75 72 73 | 6f 72 2d 3e 70 70 74 72 |= *(curs|or->pptr|
|00000b50| 2b 33 29 20 2d 20 30 2e | 30 30 30 30 30 30 36 3b |+3) - 0.|0000006;|
|00000b60| 0d 09 09 09 54 5f 69 74 | 20 3d 20 69 74 3b 0d 09 |....T_it| = it;..|
|00000b70| 09 09 54 5f 70 72 65 76 | 74 69 6d 65 20 3d 20 70 |..T_prev|time = p|
|00000b80| 72 65 76 74 69 6d 65 3b | 0d 09 09 09 2a 28 63 75 |revtime;|....*(cu|
|00000b90| 72 73 6f 72 2d 3e 70 70 | 74 72 2b 33 29 20 3d 20 |rsor->pp|tr+3) = |
|00000ba0| 63 6f 6e 76 28 78 2b 79 | 2c 20 74 63 61 72 64 2c |conv(x+y|, tcard,|
|00000bb0| 20 26 54 5f 69 74 2c 20 | 26 54 5f 70 72 65 76 74 | &T_it, |&T_prevt|
|00000bc0| 69 6d 65 29 20 2d 0d 09 | 09 09 09 09 09 2a 28 63 |ime) -..|.....*(c|
|00000bd0| 75 72 73 6f 72 2d 3e 70 | 70 74 72 2b 32 29 3b 0d |ursor->p|ptr+2);.|
|00000be0| 09 09 7d 0d 4e 65 78 74 | 5f 31 3a 0d 09 09 63 75 |..}.Next|_1:...cu|
|00000bf0| 72 73 6f 72 20 3d 20 63 | 75 72 73 6f 72 2d 3e 6e |rsor = c|ursor->n|
|00000c00| 65 78 74 3b 0d 09 7d 0d | 7d 0d 0d 0d 0d 0d 76 6f |ext;..}.|}.....vo|
|00000c10| 69 64 09 64 6f 5f 61 6c | 6c 5f 74 65 6d 70 6f 28 |id.do_al|l_tempo(|
|00000c20| 74 63 61 72 64 2c 20 6c | 69 73 74 29 0d 09 64 6f |tcard, l|ist)..do|
|00000c30| 75 62 6c 65 09 74 63 61 | 72 64 5b 5d 3b 0d 09 45 |uble.tca|rd[];..E|
|00000c40| 76 65 6e 74 09 2a 6c 69 | 73 74 3b 0d 7b 0d 09 45 |vent.*li|st;.{..E|
|00000c50| 76 65 6e 74 09 2a 63 75 | 72 73 6f 72 3b 0d 09 64 |vent.*cu|rsor;..d|
|00000c60| 6f 75 62 6c 65 09 70 72 | 65 76 74 69 6d 65 2c 20 |ouble.pr|evtime, |
|00000c70| 54 5f 70 72 65 76 74 69 | 6d 65 3b 0d 09 69 6e 74 |T_prevti|me;..int|
|00000c80| 09 09 69 74 2c 20 54 5f | 69 74 3b 0d 09 64 6f 75 |..it, T_|it;..dou|
|00000c90| 62 6c 65 09 78 3b 0d 09 | 64 6f 75 62 6c 65 09 79 |ble.x;..|double.y|
|00000ca0| 3b 0d 09 64 6f 75 62 6c | 65 09 73 3b 0d 0d 09 70 |;..doubl|e.s;...p|
|00000cb0| 72 65 76 74 69 6d 65 20 | 3d 20 30 2e 30 3b 0d 09 |revtime |= 0.0;..|
|00000cc0| 69 74 20 3d 20 30 3b 0d | 0d 09 63 75 72 73 6f 72 |it = 0;.|..cursor|
|00000cd0| 20 3d 20 6c 69 73 74 3b | 0d 09 77 68 69 6c 65 20 | = list;|..while |
|00000ce0| 28 20 63 75 72 73 6f 72 | 20 21 3d 20 4e 49 4c 20 |( cursor| != NIL |
|00000cf0| 29 20 7b 0d 09 09 2f 2a | 20 74 61 6b 65 20 6f 66 |) {.../*| take of|
|00000d00| 66 20 61 20 62 69 74 20 | 66 6f 72 20 74 72 75 6e |f a bit |for trun|
|00000d10| 63 61 74 69 6f 6e 2f 72 | 6f 75 6e 64 69 6e 67 20 |cation/r|ounding |
|00000d20| 65 72 72 6f 72 73 20 2a | 2f 0d 09 09 69 66 20 28 |errors *|/...if (|
|00000d30| 20 63 75 72 73 6f 72 2d | 3e 6f 70 20 3d 3d 20 45 | cursor-|>op == E|
|00000d40| 4f 50 20 7c 7c 20 63 75 | 72 73 6f 72 2d 3e 6f 70 |OP || cu|rsor->op|
|00000d50| 20 3d 3d 20 53 4f 50 29 | 20 7b 0d 09 09 09 67 6f | == SOP)| {....go|
|00000d60| 74 6f 20 4e 65 78 74 5f | 32 3b 0d 09 09 7d 0d 09 |to Next_|2;...}..|
|00000d70| 09 69 66 20 28 20 63 75 | 72 73 6f 72 2d 3e 6f 70 |.if ( cu|rsor->op|
|00000d80| 20 3d 3d 20 49 4f 50 20 | 29 0d 09 09 09 73 20 3d | == IOP |)....s =|
|00000d90| 20 2a 28 63 75 72 73 6f | 72 2d 3e 70 70 74 72 2b | *(curso|r->pptr+|
|00000da0| 32 29 3b 0d 09 09 65 6c | 73 65 0d 09 09 09 73 20 |2);...el|se....s |
|00000db0| 3d 20 2a 28 63 75 72 73 | 6f 72 2d 3e 70 70 74 72 |= *(curs|or->pptr|
|00000dc0| 2b 31 29 3b 0d 09 09 78 | 20 3d 20 73 3b 0d 09 09 |+1);...x| = s;...|
|00000dd0| 73 20 3d 20 63 6f 6e 76 | 28 78 2c 20 74 63 61 72 |s = conv|(x, tcar|
|00000de0| 64 2c 20 26 69 74 2c 20 | 26 70 72 65 76 74 69 6d |d, &it, |&prevtim|
|00000df0| 65 29 3b 0d 09 09 69 66 | 20 28 20 63 75 72 73 6f |e);...if| ( curso|
|00000e00| 72 2d 3e 6f 70 20 3d 3d | 20 49 4f 50 20 29 0d 09 |r->op ==| IOP )..|
|00000e10| 09 09 2a 28 63 75 72 73 | 6f 72 2d 3e 70 70 74 72 |..*(curs|or->pptr|
|00000e20| 2b 32 29 20 3d 20 73 3b | 0d 09 09 65 6c 73 65 0d |+2) = s;|...else.|
|00000e30| 09 09 09 2a 28 63 75 72 | 73 6f 72 2d 3e 70 70 74 |...*(cur|sor->ppt|
|00000e40| 72 2b 31 29 20 3d 20 73 | 3b 0d 09 09 69 66 20 28 |r+1) = s|;...if (|
|00000e50| 20 63 75 72 73 6f 72 2d | 3e 6f 70 20 3d 3d 20 49 | cursor-|>op == I|
|00000e60| 4f 50 20 29 20 7b 0d 09 | 09 09 79 20 3d 20 2a 28 |OP ) {..|..y = *(|
|00000e70| 63 75 72 73 6f 72 2d 3e | 70 70 74 72 2b 33 29 3b |cursor->|pptr+3);|
|00000e80| 0d 09 09 09 54 5f 69 74 | 20 3d 20 69 74 3b 0d 09 |....T_it| = it;..|
|00000e90| 09 09 54 5f 70 72 65 76 | 74 69 6d 65 20 3d 20 70 |..T_prev|time = p|
|00000ea0| 72 65 76 74 69 6d 65 3b | 0d 09 09 09 79 20 3d 20 |revtime;|....y = |
|00000eb0| 63 6f 6e 76 28 78 2b 79 | 2c 20 74 63 61 72 64 2c |conv(x+y|, tcard,|
|00000ec0| 20 26 54 5f 69 74 2c 20 | 26 54 5f 70 72 65 76 74 | &T_it, |&T_prevt|
|00000ed0| 69 6d 65 29 20 2d 20 2a | 28 63 75 72 73 6f 72 2d |ime) - *|(cursor-|
|00000ee0| 3e 70 70 74 72 2b 32 29 | 3b 0d 09 09 09 2a 28 63 |>pptr+2)|;....*(c|
|00000ef0| 75 72 73 6f 72 2d 3e 70 | 70 74 72 2b 33 29 20 3d |ursor->p|ptr+3) =|
|00000f00| 20 79 3b 0d 09 09 7d 0d | 4e 65 78 74 5f 32 3a 0d | y;...}.|Next_2:.|
|00000f10| 09 09 63 75 72 73 6f 72 | 20 3d 20 63 75 72 73 6f |..cursor| = curso|
|00000f20| 72 2d 3e 6e 65 78 74 3b | 0d 09 7d 0d 7d 0d 0d 0d |r->next;|..}.}...|
|00000f30| 0d 0d 23 64 65 66 69 6e | 65 09 54 49 4d 45 31 09 |..#defin|e.TIME1.|
|00000f40| 2a 28 74 63 2b 2a 69 74 | 29 0d 23 64 65 66 69 6e |*(tc+*it|).#defin|
|00000f50| 65 09 54 49 4d 45 32 09 | 2a 28 74 63 2b 2a 69 74 |e.TIME2.|*(tc+*it|
|00000f60| 2b 32 29 0d 23 64 65 66 | 69 6e 65 09 54 45 4d 50 |+2).#def|ine.TEMP|
|00000f70| 4f 31 09 2a 28 74 63 2b | 2a 69 74 2b 31 29 0d 23 |O1.*(tc+|*it+1).#|
|00000f80| 64 65 66 69 6e 65 09 54 | 45 4d 50 4f 32 09 2a 28 |define.T|EMPO2.*(|
|00000f90| 74 63 2b 2a 69 74 2b 33 | 29 0d 64 6f 75 62 6c 65 |tc+*it+3|).double|
|00000fa0| 20 63 6f 6e 76 28 20 74 | 69 6d 65 2c 20 74 63 2c | conv( t|ime, tc,|
|00000fb0| 20 69 74 2c 20 70 74 20 | 29 0d 09 64 6f 75 62 6c | it, pt |)..doubl|
|00000fc0| 65 09 74 69 6d 65 3b 0d | 09 64 6f 75 62 6c 65 09 |e.time;.|.double.|
|00000fd0| 2a 74 63 3b 0d 09 69 6e | 74 09 09 2a 69 74 3b 0d |*tc;..in|t..*it;.|
|00000fe0| 09 64 6f 75 62 6c 65 09 | 2a 70 74 3b 0d 7b 0d 09 |.double.|*pt;.{..|
|00000ff0| 64 6f 75 62 6c 65 09 64 | 6d 3b 0d 09 64 6f 75 62 |double.d|m;..doub|
|00001000| 6c 65 09 78 3b 0d 09 2f | 2a 20 61 64 61 70 74 65 |le.x;../|* adapte|
|00001010| 64 20 66 72 6f 6d 20 52 | 2e 20 50 2e 20 48 61 72 |d from R|. P. Har|
|00001020| 72 69 73 20 22 41 6e 20 | 49 6d 70 72 6f 76 65 64 |ris "An |Improved|
|00001030| 20 4d 65 74 72 6f 6e 6f | 6d 65 20 41 6c 67 6f 72 | Metrono|me Algor|
|00001040| 69 74 68 6d 20 66 6f 72 | 20 4d 75 73 69 63 56 22 |ithm for| MusicV"|
|00001050| 0d 09 43 6f 6d 70 75 74 | 65 72 20 4d 75 73 69 63 |..Comput|er Music|
|00001060| 20 52 65 73 65 61 72 63 | 68 20 50 72 6f 6a 65 63 | Researc|h Projec|
|00001070| 74 2c 0d 09 44 65 70 74 | 2e 20 6f 66 20 43 6f 6d |t,..Dept|. of Com|
|00001080| 70 75 74 65 72 20 53 63 | 69 65 6e 63 65 2c 20 55 |puter Sc|ience, U|
|00001090| 6e 69 2e 20 6f 66 20 4d | 65 6c 62 6f 75 72 6e 65 |ni. of M|elbourne|
|000010a0| 20 2a 2f 0d 0d 09 77 68 | 69 6c 65 20 28 20 54 49 | */...wh|ile ( TI|
|000010b0| 4d 45 32 20 3c 20 74 69 | 6d 65 20 26 26 20 54 45 |ME2 < ti|me && TE|
|000010c0| 4d 50 4f 32 20 3e 20 30 | 2e 30 20 29 20 7b 0d 09 |MPO2 > 0|.0 ) {..|
|000010d0| 09 69 66 20 28 20 54 45 | 4d 50 4f 31 20 21 3d 20 |.if ( TE|MPO1 != |
|000010e0| 54 45 4d 50 4f 32 20 29 | 20 7b 0d 09 09 09 2a 70 |TEMPO2 )| {....*p|
|000010f0| 74 20 2b 3d 20 36 30 2e | 30 20 2a 20 28 28 20 54 |t += 60.|0 * (( T|
|00001100| 49 4d 45 32 20 2d 20 54 | 49 4d 45 31 20 29 20 2a |IME2 - T|IME1 ) *|
|00001110| 20 6c 6f 67 28 20 54 45 | 4d 50 4f 32 2f 54 45 4d | log( TE|MPO2/TEM|
|00001120| 50 4f 31 20 29 0d 09 09 | 09 09 09 09 09 09 2f 20 |PO1 )...|....../ |
|00001130| 28 20 54 45 4d 50 4f 32 | 20 2d 20 54 45 4d 50 4f |( TEMPO2| - TEMPO|
|00001140| 31 20 29 29 3b 0d 09 09 | 7d 0d 09 09 65 6c 73 65 |1 ));...|}...else|
|00001150| 0d 09 09 09 2a 70 74 20 | 2b 3d 20 36 30 2e 30 20 |....*pt |+= 60.0 |
|00001160| 2a 20 28 20 54 49 4d 45 | 32 20 2d 20 54 49 4d 45 |* ( TIME|2 - TIME|
|00001170| 31 20 29 20 2f 20 54 45 | 4d 50 4f 31 3b 0d 09 09 |1 ) / TE|MPO1;...|
|00001180| 2a 69 74 20 2b 3d 20 32 | 3b 0d 09 7d 0d 0d 09 78 |*it += 2|;..}...x|
|00001190| 20 3d 20 74 69 6d 65 20 | 2d 20 54 49 4d 45 31 3b | = time |- TIME1;|
|000011a0| 0d 09 69 66 20 28 20 54 | 45 4d 50 4f 32 20 3d 3d |..if ( T|EMPO2 ==|
|000011b0| 20 54 45 4d 50 4f 31 20 | 7c 7c 20 54 45 4d 50 4f | TEMPO1 ||| TEMPO|
|000011c0| 32 20 3d 3d 20 30 2e 30 | 20 29 0d 09 09 09 72 65 |2 == 0.0| )....re|
|000011d0| 74 75 72 6e 28 20 2a 70 | 74 20 2b 20 36 30 2e 30 |turn( *p|t + 60.0|
|000011e0| 20 2a 20 20 78 2f 54 45 | 4d 50 4f 31 29 3b 0d 09 | * x/TE|MPO1);..|
|000011f0| 65 6c 73 65 20 7b 0d 09 | 09 64 6d 20 3d 20 28 20 |else {..|.dm = ( |
|00001200| 54 49 4d 45 32 20 2d 20 | 54 49 4d 45 31 20 29 20 |TIME2 - |TIME1 ) |
|00001210| 2f 20 28 20 54 45 4d 50 | 4f 32 20 2d 20 54 45 4d |/ ( TEMP|O2 - TEM|
|00001220| 50 4f 31 20 29 3b 0d 09 | 09 72 65 74 75 72 6e 28 |PO1 );..|.return(|
|00001230| 20 2a 70 74 20 2b 20 36 | 30 2e 30 20 2a 20 64 6d | *pt + 6|0.0 * dm|
|00001240| 20 2a 20 6c 6f 67 28 20 | 31 2e 30 20 2b 20 78 2f | * log( |1.0 + x/|
|00001250| 64 6d 2f 54 45 4d 50 4f | 31 29 29 3b 0d 09 7d 0d |dm/TEMPO|1));..}.|
|00001260| 7d 09 2f 2a 20 63 6f 6e | 76 09 2a 2f 0d 0d 0d 2f |}./* con|v.*/.../|
|00001270| 2a 64 6f 75 62 6c 65 20 | 6f 6c 64 63 6f 6e 76 28 |*double |oldconv(|
|00001280| 20 74 69 6d 65 2c 20 54 | 2c 20 69 74 2c 20 70 74 | time, T|, it, pt|
|00001290| 20 29 0d 09 64 6f 75 62 | 6c 65 09 74 69 6d 65 3b | )..doub|le.time;|
|000012a0| 0d 09 64 6f 75 62 6c 65 | 09 54 5b 5d 3b 0d 09 69 |..double|.T[];..i|
|000012b0| 6e 74 09 09 2a 69 74 3b | 0d 09 64 6f 75 62 6c 65 |nt..*it;|..double|
|000012c0| 09 2a 70 74 3b 0d 7b 0d | 09 64 6f 75 62 6c 65 09 |.*pt;.{.|.double.|
|000012d0| 64 6d 3b 0d 09 64 6f 75 | 62 6c 65 09 78 3b 0d 61 |dm;..dou|ble.x;.a|
|000012e0| 64 61 70 74 65 64 20 66 | 72 6f 6d 20 52 2e 20 50 |dapted f|rom R. P|
|000012f0| 2e 20 48 61 72 72 69 73 | 20 22 41 6e 20 49 6d 70 |. Harris| "An Imp|
|00001300| 72 6f 76 65 64 20 4d 65 | 74 72 6f 6e 6f 6d 65 20 |roved Me|tronome |
|00001310| 41 6c 67 6f 72 69 74 68 | 6d 20 66 6f 72 20 4d 75 |Algorith|m for Mu|
|00001320| 73 69 63 56 22 0d 43 6f | 6d 70 75 74 65 72 20 4d |sicV".Co|mputer M|
|00001330| 75 73 69 63 20 52 65 73 | 65 61 72 63 68 20 50 72 |usic Res|earch Pr|
|00001340| 6f 6a 65 63 74 2c 0d 44 | 65 70 74 2e 20 6f 66 20 |oject,.D|ept. of |
|00001350| 43 6f 6d 70 75 74 65 72 | 20 53 63 69 65 6e 63 65 |Computer| Science|
|00001360| 2c 20 55 6e 69 2e 20 6f | 66 20 4d 65 6c 62 6f 75 |, Uni. o|f Melbou|
|00001370| 72 6e 65 0d 0d 09 77 68 | 69 6c 65 20 28 20 54 5b |rne...wh|ile ( T[|
|00001380| 2a 69 74 2b 32 5d 20 3c | 20 74 69 6d 65 20 26 26 |*it+2] <| time &&|
|00001390| 20 54 5b 2a 69 74 2b 33 | 5d 20 3e 20 30 2e 30 20 | T[*it+3|] > 0.0 |
|000013a0| 29 20 7b 0d 09 09 69 66 | 20 28 20 54 5b 2a 69 74 |) {...if| ( T[*it|
|000013b0| 2b 31 5d 20 21 3d 20 54 | 5b 2a 69 74 2b 33 5d 20 |+1] != T|[*it+3] |
|000013c0| 29 20 7b 0d 09 09 09 2a | 70 74 20 2b 3d 20 36 30 |) {....*|pt += 60|
|000013d0| 2e 30 20 2a 20 28 20 54 | 5b 2a 69 74 2b 32 5d 20 |.0 * ( T|[*it+2] |
|000013e0| 2d 20 54 5b 2a 69 74 5d | 20 29 20 2a 20 6c 6f 67 |- T[*it]| ) * log|
|000013f0| 28 20 54 5b 2a 69 74 2b | 33 5d 2f 54 5b 2a 69 74 |( T[*it+|3]/T[*it|
|00001400| 2b 31 5d 20 29 0d 09 09 | 09 09 09 09 09 09 2f 20 |+1] )...|....../ |
|00001410| 28 20 54 5b 2a 69 74 2b | 33 5d 20 2d 20 54 5b 2a |( T[*it+|3] - T[*|
|00001420| 69 74 2b 31 5d 20 29 3b | 0d 09 09 7d 0d 09 09 65 |it+1] );|...}...e|
|00001430| 6c 73 65 0d 09 09 09 2a | 70 74 20 2b 3d 20 36 30 |lse....*|pt += 60|
|00001440| 2e 30 20 2a 20 28 20 54 | 5b 2a 69 74 2b 32 5d 20 |.0 * ( T|[*it+2] |
|00001450| 2d 20 54 5b 2a 69 74 5d | 20 29 20 2f 20 54 5b 2a |- T[*it]| ) / T[*|
|00001460| 69 74 2b 31 5d 3b 0d 09 | 09 2a 69 74 20 2b 3d 20 |it+1];..|.*it += |
|00001470| 32 3b 0d 09 7d 0d 0d 09 | 78 20 3d 20 74 69 6d 65 |2;..}...|x = time|
|00001480| 20 2d 20 54 5b 2a 69 74 | 5d 3b 0d 09 69 66 20 28 | - T[*it|];..if (|
|00001490| 20 54 5b 2a 69 74 2b 33 | 5d 20 3d 3d 20 54 5b 2a | T[*it+3|] == T[*|
|000014a0| 69 74 2b 31 5d 20 7c 7c | 20 54 5b 2a 69 74 2b 33 |it+1] ||| T[*it+3|
|000014b0| 5d 20 3d 3d 20 30 2e 30 | 20 29 0d 09 09 09 72 65 |] == 0.0| )....re|
|000014c0| 74 75 72 6e 28 20 2a 70 | 74 20 2b 20 36 30 2e 30 |turn( *p|t + 60.0|
|000014d0| 20 2a 20 20 78 2f 54 5b | 2a 69 74 2b 31 5d 29 3b | * x/T[|*it+1]);|
|000014e0| 0d 09 65 6c 73 65 20 7b | 0d 09 09 64 6d 20 3d 20 |..else {|...dm = |
|000014f0| 28 20 54 5b 2a 69 74 2b | 32 5d 20 2d 20 54 5b 2a |( T[*it+|2] - T[*|
|00001500| 69 74 5d 20 29 20 2f 20 | 28 20 54 5b 2a 69 74 2b |it] ) / |( T[*it+|
|00001510| 33 5d 20 2d 20 54 5b 2a | 69 74 2b 31 5d 20 29 3b |3] - T[*|it+1] );|
|00001520| 0d 09 09 72 65 74 75 72 | 6e 28 20 2a 70 74 20 2b |...retur|n( *pt +|
|00001530| 20 36 30 2e 30 20 2a 20 | 64 6d 20 2a 20 6c 6f 67 | 60.0 * |dm * log|
|00001540| 28 20 31 2e 30 20 2b 20 | 78 2f 64 6d 2f 54 5b 2a |( 1.0 + |x/dm/T[*|
|00001550| 69 74 2b 31 5d 29 29 3b | 0d 09 7d 0d 7d 0d 2a 2f |it+1]));|..}.}.*/|
|00001560| 0d 0d 76 6f 69 64 09 72 | 65 6e 75 6d 62 65 72 28 |..void.r|enumber(|
|00001570| 6c 69 73 74 29 0d 09 45 | 76 65 6e 74 20 2a 6c 69 |list)..E|vent *li|
|00001580| 73 74 3b 0d 7b 0d 2f 2a | 20 72 65 2d 6e 75 6d 62 |st;.{./*| re-numb|
|00001590| 65 72 73 20 69 6e 73 74 | 72 75 6d 65 6e 74 73 20 |ers inst|ruments |
|000015a0| 2a 2f 0d 0d 09 72 65 67 | 69 73 74 65 72 09 69 6e |*/...reg|ister.in|
|000015b0| 74 09 69 3b 0d 09 72 65 | 67 69 73 74 65 72 09 69 |t.i;..re|gister.i|
|000015c0| 6e 74 09 6e 3b 0d 09 65 | 78 74 65 72 6e 20 69 6e |nt.n;..e|xtern in|
|000015d0| 74 20 6e 5f 69 5f 63 61 | 72 64 73 3b 0d 09 64 6f |t n_i_ca|rds;..do|
|000015e0| 75 62 6c 65 09 6f 6e 5b | 4d 41 58 49 4e 53 54 52 |uble.on[|MAXINSTR|
|000015f0| 53 2b 31 5d 3b 0d 09 69 | 6e 74 20 2a 69 73 6f 72 |S+1];..i|nt *isor|
|00001600| 74 3b 0d 09 69 6e 74 09 | 6b 6d 69 6e 5b 31 30 30 |t;..int.|kmin[100|
|00001610| 5d 3b 0d 09 69 6e 74 09 | 6b 6d 61 78 20 3d 20 30 |];..int.|kmax = 0|
|00001620| 3b 0d 09 69 6e 74 09 6c | 61 73 74 6c 20 3d 20 30 |;..int.l|astl = 0|
|00001630| 3b 0d 09 69 6e 74 09 6e | 6f 3b 0d 09 69 6e 74 20 |;..int.n|o;..int |
|00001640| 6c 61 72 67 65 20 3d 20 | 31 3b 0d 09 69 6e 74 20 |large = |1;..int |
|00001650| 6e 6c 6f 77 3b 0d 09 45 | 76 65 6e 74 20 2a 63 75 |nlow;..E|vent *cu|
|00001660| 72 73 6f 72 3b 0d 09 69 | 6e 74 09 61 6e 79 63 61 |rsor;..i|nt.anyca|
|00001670| 72 64 73 3b 0d 09 65 78 | 74 65 72 6e 09 53 74 72 |rds;..ex|tern.Str|
|00001680| 32 35 35 09 74 68 65 4d | 65 73 73 31 3b 0d 0d 09 |255.theM|ess1;...|
|00001690| 2f 2a 2a 69 73 6f 72 74 | 20 3d 20 28 69 6e 74 20 |/**isort| = (int |
|000016a0| 2a 29 20 4e 65 77 50 74 | 72 28 28 6e 5f 69 5f 63 |*) NewPt|r((n_i_c|
|000016b0| 61 72 64 73 2b 31 29 2a | 73 69 7a 65 6f 66 28 69 |ards+1)*|sizeof(i|
|000016c0| 6e 74 29 29 3b 0d 09 69 | 66 20 28 20 28 74 68 65 |nt));..i|f ( (the|
|000016d0| 45 72 72 20 3d 20 4d 65 | 6d 45 72 72 6f 72 28 29 |Err = Me|mError()|
|000016e0| 29 20 20 21 3d 20 6e 6f | 45 72 72 20 29 7b 0d 09 |) != no|Err ){..|
|000016f0| 09 50 73 74 72 69 6e 67 | 43 6f 70 79 28 28 63 68 |.Pstring|Copy((ch|
|00001700| 61 72 20 2a 29 74 68 65 | 4d 65 73 73 31 2c 20 22 |ar *)the|Mess1, "|
|00001710| 5c 70 45 72 72 6f 72 20 | 61 6c 6c 6f 63 61 74 69 |\pError |allocati|
|00001720| 6e 67 20 6d 65 6d 6f 72 | 79 20 69 6e 20 72 65 6e |ng memor|y in ren|
|00001730| 75 6d 62 65 72 3a 22 29 | 3b 0d 09 09 4f 53 45 72 |umber:")|;...OSEr|
|00001740| 72 6f 72 28 74 68 65 4d | 65 73 73 31 2c 20 4e 49 |ror(theM|ess1, NI|
|00001750| 4c 2c 20 74 68 65 45 72 | 72 29 3b 0d 09 7d 0d 09 |L, theEr|r);..}..|
|00001760| 0d 09 0d 09 2a 2f 0d 09 | 69 20 3d 20 31 3b 0d 09 |....*/..|i = 1;..|
|00001770| 66 6f 72 20 28 20 63 75 | 72 73 6f 72 20 3d 20 6c |for ( cu|rsor = l|
|00001780| 69 73 74 3b 20 63 75 72 | 73 6f 72 20 21 3d 20 4e |ist; cur|sor != N|
|00001790| 49 4c 3b 20 63 75 72 73 | 6f 72 3d 63 75 72 73 6f |IL; curs|or=curso|
|000017a0| 72 2d 3e 6e 65 78 74 29 | 20 7b 0d 09 09 69 66 20 |r->next)| {...if |
|000017b0| 28 20 63 75 72 73 6f 72 | 2d 3e 6f 70 20 3d 3d 20 |( cursor|->op == |
|000017c0| 49 4f 50 20 29 20 7b 0d | 09 2f 2a 09 09 2a 28 69 |IOP ) {.|./*..*(i|
|000017d0| 73 6f 72 74 2b 69 29 20 | 3d 20 31 3b 2a 2f 0d 09 |sort+i) |= 1;*/..|
|000017e0| 09 09 69 2b 2b 3b 0d 09 | 09 09 6b 6d 61 78 20 3d |..i++;..|..kmax =|
|000017f0| 20 4d 41 58 28 6b 6d 61 | 78 2c 2a 63 75 72 73 6f | MAX(kma|x,*curso|
|00001800| 72 2d 3e 70 70 74 72 20 | 29 3b 0d 09 09 7d 0d 09 |r->pptr |);...}..|
|00001810| 7d 0d 0d 09 6d 61 78 5f | 69 6e 73 5f 74 79 70 65 |}...max_|ins_type|
|00001820| 73 20 3d 20 6b 6d 61 78 | 3b 0d 0d 09 66 6f 72 20 |s = kmax|;...for |
|00001830| 28 20 6e 20 3d 20 31 3b | 20 6e 20 3c 3d 20 6b 6d |( n = 1;| n <= km|
|00001840| 61 78 3b 20 6e 2b 2b 20 | 29 20 7b 20 2f 2a 20 66 |ax; n++ |) { /* f|
|00001850| 6f 72 20 65 61 63 68 20 | 69 6e 73 74 72 75 6d 65 |or each |instrume|
|00001860| 6e 74 20 67 72 6f 75 70 | 20 2a 2f 0d 09 09 66 6f |nt group| */...fo|
|00001870| 72 20 28 20 69 20 3d 20 | 31 3b 20 69 20 3c 3d 20 |r ( i = |1; i <= |
|00001880| 4d 41 58 49 4e 53 54 52 | 53 3b 20 69 2b 2b 20 29 |MAXINSTR|S; i++ )|
|00001890| 0d 09 09 09 6f 6e 5b 69 | 5d 20 3d 20 30 2e 30 3b |....on[i|] = 0.0;|
|000018a0| 0d 09 09 69 20 3d 20 31 | 3b 0d 09 09 6c 61 73 74 |...i = 1|;...last|
|000018b0| 6c 20 3d 20 30 3b 0d 09 | 09 6e 6c 6f 77 20 3d 20 |l = 0;..|.nlow = |
|000018c0| 31 3b 0d 09 09 61 6e 79 | 63 61 72 64 73 20 3d 20 |1;...any|cards = |
|000018d0| 30 3b 0d 09 09 66 6f 72 | 20 28 20 63 75 72 73 6f |0;...for| ( curso|
|000018e0| 72 20 3d 20 6c 69 73 74 | 3b 20 63 75 72 73 6f 72 |r = list|; cursor|
|000018f0| 20 21 3d 20 4e 49 4c 3b | 20 63 75 72 73 6f 72 20 | != NIL;| cursor |
|00001900| 3d 20 63 75 72 73 6f 72 | 2d 3e 6e 65 78 74 20 29 |= cursor|->next )|
|00001910| 20 7b 0d 09 09 09 69 66 | 20 28 63 75 72 73 6f 72 | {....if| (cursor|
|00001920| 2d 3e 6f 70 20 3d 3d 20 | 49 4f 50 29 20 7b 0d 09 |->op == |IOP) {..|
|00001930| 09 09 09 69 66 20 28 20 | 28 69 6e 74 29 2a 28 63 |...if ( |(int)*(c|
|00001940| 75 72 73 6f 72 2d 3e 70 | 70 74 72 29 20 3d 3d 20 |ursor->p|ptr) == |
|00001950| 6e 20 29 20 7b 0d 09 09 | 09 09 09 61 6e 79 63 61 |n ) {...|...anyca|
|00001960| 72 64 73 20 3d 20 31 3b | 0d 09 09 09 09 09 6e 6f |rds = 1;|......no|
|00001970| 20 3d 20 6c 61 73 74 6c | 20 2b 20 31 3b 0d 09 09 | = lastl| + 1;...|
|00001980| 09 09 09 77 68 69 6c 65 | 20 28 6f 6e 5b 6e 6f 5d |...while| (on[no]|
|00001990| 20 3e 20 2a 28 63 75 72 | 73 6f 72 2d 3e 70 70 74 | > *(cur|sor->ppt|
|000019a0| 72 2b 32 29 20 29 20 7b | 0d 09 09 09 09 09 09 6e |r+2) ) {|.......n|
|000019b0| 6f 2b 2b 3b 0d 09 09 09 | 09 09 09 69 66 20 28 20 |o++;....|...if ( |
|000019c0| 6e 6f 20 3e 20 4d 41 58 | 49 4e 53 54 52 53 2b 31 |no > MAX|INSTRS+1|
|000019d0| 29 20 7b 0d 09 09 09 09 | 09 09 09 50 73 74 72 69 |) {.....|...Pstri|
|000019e0| 6e 67 43 6f 70 79 28 28 | 63 68 61 72 20 2a 29 74 |ngCopy((|char *)t|
|000019f0| 68 65 4d 65 73 73 31 2c | 20 22 5c 70 54 6f 6f 20 |heMess1,| "\pToo |
|00001a00| 6d 61 6e 79 20 73 69 6d | 75 6c 74 61 6e 65 6f 75 |many sim|ultaneou|
|00001a10| 73 20 65 76 65 6e 74 73 | 20 72 65 6e 75 6d 62 65 |s events| renumbe|
|00001a20| 72 69 6e 67 20 69 6e 73 | 74 72 75 6d 65 6e 74 20 |ring ins|trument |
|00001a30| 67 72 6f 75 70 22 29 3b | 0d 09 09 09 09 09 09 09 |group");|........|
|00001a40| 4f 53 45 72 72 6f 72 28 | 74 68 65 4d 65 73 73 31 |OSError(|theMess1|
|00001a50| 2c 20 4e 49 4c 2c 20 74 | 68 65 45 72 72 29 3b 0d |, NIL, t|heErr);.|
|00001a60| 09 09 09 09 09 09 7d 0d | 09 09 09 09 09 7d 0d 09 |......}.|.....}..|
|00001a70| 09 09 09 09 2a 28 63 75 | 72 73 6f 72 2d 3e 70 70 |....*(cu|rsor->pp|
|00001a80| 74 72 2b 31 29 20 3d 20 | 6e 6f 3b 0d 09 09 09 09 |tr+1) = |no;.....|
|00001a90| 09 6f 6e 5b 6e 6f 5d 20 | 3d 20 2a 28 63 75 72 73 |.on[no] |= *(curs|
|00001aa0| 6f 72 2d 3e 70 70 74 72 | 2b 32 29 20 2b 20 2a 28 |or->pptr|+2) + *(|
|00001ab0| 63 75 72 73 6f 72 2d 3e | 70 70 74 72 2b 33 29 3b |cursor->|pptr+3);|
|00001ac0| 0d 09 09 09 09 09 6c 61 | 72 67 65 20 3d 20 4d 41 |......la|rge = MA|
|00001ad0| 58 28 6c 61 72 67 65 2c | 20 6e 6f 20 29 3b 0d 09 |X(large,| no );..|
|00001ae0| 09 09 09 7d 0d 09 09 09 | 09 69 2b 2b 3b 0d 09 09 |...}....|.i++;...|
|00001af0| 09 7d 0d 09 09 7d 20 2f | 2a 20 66 6f 72 20 63 75 |.}...} /|* for cu|
|00001b00| 72 73 6f 72 20 2a 2f 0d | 09 09 69 66 20 28 20 61 |rsor */.|..if ( a|
|00001b10| 6e 79 63 61 72 64 73 20 | 26 26 20 6e 6c 6f 77 20 |nycards |&& nlow |
|00001b20| 3c 3d 20 6c 61 72 67 65 | 20 26 26 20 6f 75 74 32 |<= large| && out2|
|00001b30| 5f 66 6c 61 67 29 20 7b | 0d 09 09 09 73 70 72 69 |_flag) {|....spri|
|00001b40| 6e 74 66 28 28 63 68 61 | 72 20 2a 29 74 68 65 4d |ntf((cha|r *)theM|
|00001b50| 65 73 73 31 2c 20 22 49 | 6e 73 74 72 75 6d 65 6e |ess1, "I|nstrumen|
|00001b60| 74 20 67 72 6f 75 70 20 | 25 64 20 75 73 65 73 20 |t group |%d uses |
|00001b70| 69 6e 73 74 72 75 6d 65 | 6e 74 20 6e 75 6d 62 65 |instrume|nt numbe|
|00001b80| 72 73 20 25 64 20 74 6f | 20 25 64 5c 6e 22 2c 0d |rs %d to| %d\n",.|
|00001b90| 09 09 09 09 6e 2c 20 6e | 6c 6f 77 2c 20 6c 61 72 |....n, n|low, lar|
|00001ba0| 67 65 29 3b 0d 09 09 09 | 52 65 70 6f 72 74 28 28 |ge);....|Report((|
|00001bb0| 63 68 61 72 20 2a 29 74 | 68 65 4d 65 73 73 31 29 |char *)t|heMess1)|
|00001bc0| 3b 0d 09 09 7d 0d 09 09 | 6c 61 73 74 6c 20 3d 20 |;...}...|lastl = |
|00001bd0| 4d 41 58 28 6c 61 72 67 | 65 2c 20 6c 61 73 74 6c |MAX(larg|e, lastl|
|00001be0| 2b 6b 6d 69 6e 5b 6e 5d | 29 3b 0d 0d 09 09 0d 09 |+kmin[n]|);......|
|00001bf0| 7d 20 2f 2a 20 66 6f 72 | 20 6e 20 3d 20 31 20 2a |} /* for| n = 1 *|
|00001c00| 2f 0d 0d 09 2f 2a 66 6f | 72 20 28 20 69 20 3d 20 |/.../*fo|r ( i = |
|00001c10| 30 3b 20 69 20 3c 20 6e | 5f 69 5f 63 61 72 64 73 |0; i < n|_i_cards|
|00001c20| 3b 20 69 2b 2b 20 29 20 | 7b 0d 09 09 44 69 73 70 |; i++ ) |{...Disp|
|00001c30| 6f 73 50 74 72 28 28 50 | 74 72 29 28 69 73 6f 72 |osPtr((P|tr)(isor|
|00001c40| 74 2b 69 29 29 3b 0d 09 | 7d 2a 2f 0d 7d 0d 0d 0d |t+i));..|}*/.}...|
|00001c50| 45 76 65 6e 74 09 2a 52 | 65 53 6f 72 74 4c 69 73 |Event.*R|eSortLis|
|00001c60| 74 28 68 65 61 64 29 0d | 09 45 76 65 6e 74 20 2a |t(head).|.Event *|
|00001c70| 68 65 61 64 3b 0d 7b 0d | 2f 2a 0d 2a 20 52 65 20 |head;.{.|/*.* Re |
|00001c80| 73 6f 72 74 20 74 68 65 | 20 6c 69 73 74 2c 20 6d |sort the| list, m|
|00001c90| 61 6b 69 6e 67 20 73 75 | 72 65 20 69 74 27 73 20 |aking su|re it's |
|00001ca0| 69 6e 20 63 68 72 6f 6e | 6f 6c 6f 67 69 63 61 6c |in chron|ological|
|00001cb0| 20 6f 72 64 65 72 2e 0d | 57 65 20 64 6f 20 74 68 | order..|We do th|
|00001cc0| 69 73 20 62 79 20 65 73 | 73 65 6e 74 69 61 6c 6c |is by es|sentiall|
|00001cd0| 79 20 6d 61 6b 69 6e 67 | 20 61 20 6e 65 77 20 28 |y making| a new (|
|00001ce0| 73 6f 72 74 65 64 29 20 | 6c 69 73 74 20 62 79 20 |sorted) |list by |
|00001cf0| 74 61 6b 69 6e 67 20 65 | 61 63 68 20 6f 66 0d 74 |taking e|ach of.t|
|00001d00| 68 65 20 6c 69 73 74 20 | 65 6c 65 6d 65 6e 74 73 |he list |elements|
|00001d10| 20 69 6e 20 74 75 72 6e | 20 2a 2f 0d 0d 09 45 76 | in turn| */...Ev|
|00001d20| 65 6e 74 20 2a 63 2c 20 | 2a 6e 65 77 68 65 61 64 |ent *c, |*newhead|
|00001d30| 2c 20 2a 63 75 72 73 6f | 72 2c 20 2a 63 70 72 65 |, *curso|r, *cpre|
|00001d40| 76 2c 20 2a 74 68 65 4e | 65 78 74 3b 0d 09 69 6e |v, *theN|ext;..in|
|00001d50| 74 20 69 3b 0d 09 69 6e | 74 20 64 6f 6e 65 20 3d |t i;..in|t done =|
|00001d60| 20 30 3b 0d 09 64 6f 75 | 62 6c 65 20 73 31 2c 20 | 0;..dou|ble s1, |
|00001d70| 73 32 3b 0d 09 64 6f 75 | 62 6c 65 09 6c 61 74 65 |s2;..dou|ble.late|
|00001d80| 73 74 3b 0d 0d 2f 2a 20 | 66 69 72 73 74 2c 20 63 |st;../* |first, c|
|00001d90| 72 65 61 74 65 20 6e 65 | 77 20 6c 69 73 74 20 61 |reate ne|w list a|
|00001da0| 6e 64 20 63 6f 70 79 20 | 74 68 65 20 22 68 65 61 |nd copy |the "hea|
|00001db0| 64 22 20 2a 2f 0d 09 6e | 65 77 68 65 61 64 20 3d |d" */..n|ewhead =|
|00001dc0| 20 28 45 76 65 6e 74 20 | 2a 29 4e 65 77 50 74 72 | (Event |*)NewPtr|
|00001dd0| 28 73 69 7a 65 6f 66 28 | 45 76 65 6e 74 29 29 3b |(sizeof(|Event));|
|00001de0| 0d 09 69 66 20 28 20 28 | 74 68 65 45 72 72 20 3d |..if ( (|theErr =|
|00001df0| 20 4d 65 6d 45 72 72 6f | 72 28 29 29 20 20 21 3d | MemErro|r()) !=|
|00001e00| 20 6e 6f 45 72 72 20 29 | 7b 0d 09 09 50 73 74 72 | noErr )|{...Pstr|
|00001e10| 69 6e 67 43 6f 70 79 28 | 28 63 68 61 72 20 2a 29 |ingCopy(|(char *)|
|00001e20| 74 68 65 4d 65 73 73 31 | 2c 22 5c 70 45 72 72 6f |theMess1|,"\pErro|
|00001e30| 72 20 61 6c 6c 6f 63 61 | 74 69 6e 67 20 6d 65 6d |r alloca|ting mem|
|00001e40| 6f 72 79 20 69 6e 20 69 | 6e 73 65 72 74 5f 69 6e |ory in i|nsert_in|
|00001e50| 5f 6c 69 73 74 22 29 3b | 0d 09 09 4f 53 45 72 72 |_list");|...OSErr|
|00001e60| 6f 72 28 74 68 65 4d 65 | 73 73 31 2c 20 4e 49 4c |or(theMe|ss1, NIL|
|00001e70| 2c 20 4e 49 4c 29 3b 0d | 09 7d 0d 09 6e 65 77 68 |, NIL);.|.}..newh|
|00001e80| 65 61 64 2d 3e 6e 61 72 | 67 73 20 3d 20 68 65 61 |ead->nar|gs = hea|
|00001e90| 64 2d 3e 6e 61 72 67 73 | 3b 0d 09 6e 65 77 68 65 |d->nargs|;..newhe|
|00001ea0| 61 64 2d 3e 6f 70 20 3d | 20 68 65 61 64 2d 3e 6f |ad->op =| head->o|
|00001eb0| 70 3b 0d 09 6e 65 77 68 | 65 61 64 2d 3e 6e 65 78 |p;..newh|ead->nex|
|00001ec0| 74 20 3d 20 4e 49 4c 3b | 0d 09 6e 65 77 68 65 61 |t = NIL;|..newhea|
|00001ed0| 64 2d 3e 70 70 74 72 20 | 3d 20 28 64 6f 75 62 6c |d->pptr |= (doubl|
|00001ee0| 65 20 2a 29 4e 65 77 50 | 74 72 28 6e 65 77 68 65 |e *)NewP|tr(newhe|
|00001ef0| 61 64 2d 3e 6e 61 72 67 | 73 20 2a 20 73 69 7a 65 |ad->narg|s * size|
|00001f00| 6f 66 28 64 6f 75 62 6c | 65 29 29 3b 0d 09 69 66 |of(doubl|e));..if|
|00001f10| 20 28 20 28 74 68 65 45 | 72 72 20 3d 20 4d 65 6d | ( (theE|rr = Mem|
|00001f20| 45 72 72 6f 72 28 29 29 | 20 20 21 3d 20 6e 6f 45 |Error())| != noE|
|00001f30| 72 72 20 29 7b 0d 09 09 | 50 73 74 72 69 6e 67 43 |rr ){...|PstringC|
|00001f40| 6f 70 79 28 28 63 68 61 | 72 20 2a 29 74 68 65 4d |opy((cha|r *)theM|
|00001f50| 65 73 73 31 2c 22 5c 70 | 45 72 72 6f 72 20 61 6c |ess1,"\p|Error al|
|00001f60| 6c 6f 63 61 74 69 6e 67 | 20 6d 65 6d 6f 72 79 20 |locating| memory |
|00001f70| 66 6f 72 20 70 61 72 61 | 6d 65 74 65 72 73 20 69 |for para|meters i|
|00001f80| 6e 20 69 6e 73 65 72 74 | 5f 69 6e 5f 6c 69 73 74 |n insert|_in_list|
|00001f90| 22 29 3b 0d 09 09 4f 53 | 45 72 72 6f 72 28 74 68 |");...OS|Error(th|
|00001fa0| 65 4d 65 73 73 31 2c 20 | 4e 49 4c 2c 20 4e 49 4c |eMess1, |NIL, NIL|
|00001fb0| 29 3b 0d 09 7d 0d 09 66 | 6f 72 20 28 69 20 3d 20 |);..}..f|or (i = |
|00001fc0| 30 3b 20 69 3c 6e 65 77 | 68 65 61 64 2d 3e 6e 61 |0; i<new|head->na|
|00001fd0| 72 67 73 3b 20 69 2b 2b | 29 20 7b 0d 09 09 2a 28 |rgs; i++|) {...*(|
|00001fe0| 6e 65 77 68 65 61 64 2d | 3e 70 70 74 72 2b 69 29 |newhead-|>pptr+i)|
|00001ff0| 20 3d 20 2a 28 68 65 61 | 64 2d 3e 70 70 74 72 2b | = *(hea|d->pptr+|
|00002000| 69 29 3b 0d 09 7d 0d 0d | 09 6c 61 74 65 73 74 20 |i);..}..|.latest |
|00002010| 3d 20 30 2e 30 3b 0d 09 | 63 75 72 73 6f 72 20 3d |= 0.0;..|cursor =|
|00002020| 20 68 65 61 64 2d 3e 6e | 65 78 74 3b 0d 09 44 69 | head->n|ext;..Di|
|00002030| 73 70 6f 73 50 74 72 28 | 28 50 74 72 29 68 65 61 |sposPtr(|(Ptr)hea|
|00002040| 64 29 3b 0d 09 74 68 65 | 4e 65 78 74 20 3d 20 63 |d);..the|Next = c|
|00002050| 75 72 73 6f 72 2d 3e 6e | 65 78 74 3b 0d 09 77 68 |ursor->n|ext;..wh|
|00002060| 69 6c 65 20 28 63 75 72 | 73 6f 72 20 21 3d 20 4e |ile (cur|sor != N|
|00002070| 49 4c 29 20 7b 0d 09 09 | 2f 2a 20 70 75 74 20 63 |IL) {...|/* put c|
|00002080| 75 72 73 6f 72 20 69 6e | 74 6f 20 6c 69 73 74 20 |ursor in|to list |
|00002090| 2a 2f 0d 09 09 69 66 20 | 28 20 63 75 72 73 6f 72 |*/...if |( cursor|
|000020a0| 2d 3e 6f 70 20 3d 3d 20 | 45 4f 50 20 29 20 7b 09 |->op == |EOP ) {.|
|000020b0| 2f 2a 20 70 75 74 20 61 | 74 20 65 6e 64 20 6f 66 |/* put a|t end of|
|000020c0| 20 6c 69 73 74 20 2a 2f | 0d 09 09 09 63 70 72 65 | list */|....cpre|
|000020d0| 76 20 3d 20 63 20 3d 20 | 6e 65 77 68 65 61 64 3b |v = c = |newhead;|
|000020e0| 0d 09 09 09 77 68 69 6c | 65 20 28 63 20 21 3d 20 |....whil|e (c != |
|000020f0| 4e 49 4c 29 20 7b 0d 09 | 09 09 09 69 66 20 28 20 |NIL) {..|...if ( |
|00002100| 63 2d 3e 6f 70 20 3d 3d | 20 49 4f 50 20 29 0d 09 |c->op ==| IOP )..|
|00002110| 09 09 09 09 73 31 20 3d | 20 2a 28 63 2d 3e 70 70 |....s1 =| *(c->pp|
|00002120| 74 72 2b 32 29 20 2b 20 | 2a 28 63 2d 3e 70 70 74 |tr+2) + |*(c->ppt|
|00002130| 72 2b 33 29 3b 0d 09 09 | 09 09 65 6c 73 65 20 69 |r+3);...|..else i|
|00002140| 66 20 28 20 63 2d 3e 6f | 70 20 3d 3d 20 53 4f 50 |f ( c->o|p == SOP|
|00002150| 20 29 0d 09 09 09 09 09 | 73 31 20 3d 20 2a 28 63 | )......|s1 = *(c|
|00002160| 2d 3e 70 70 74 72 29 3b | 0d 09 09 09 09 65 6c 73 |->pptr);|.....els|
|00002170| 65 0d 09 09 09 09 09 73 | 31 20 3d 20 2a 28 63 2d |e......s|1 = *(c-|
|00002180| 3e 70 70 74 72 2b 31 29 | 3b 0d 09 09 09 09 6c 61 |>pptr+1)|;.....la|
|00002190| 74 65 73 74 20 3d 20 4d | 41 58 28 73 31 2c 20 6c |test = M|AX(s1, l|
|000021a0| 61 74 65 73 74 29 3b 09 | 09 09 0d 09 09 09 09 63 |atest);.|.......c|
|000021b0| 70 72 65 76 20 3d 20 63 | 3b 0d 09 09 09 09 63 20 |prev = c|;.....c |
|000021c0| 3d 20 63 2d 3e 6e 65 78 | 74 3b 0d 09 09 09 7d 0d |= c->nex|t;....}.|
|000021d0| 09 09 09 63 70 72 65 76 | 2d 3e 6e 65 78 74 20 3d |...cprev|->next =|
|000021e0| 20 63 75 72 73 6f 72 3b | 0d 09 09 09 2a 28 63 75 | cursor;|....*(cu|
|000021f0| 72 73 6f 72 2d 3e 70 70 | 74 72 2b 31 29 20 3d 20 |rsor->pp|tr+1) = |
|00002200| 6c 61 74 65 73 74 3b 0d | 09 09 7d 0d 09 09 65 6c |latest;.|..}...el|
|00002210| 73 65 20 7b 0d 09 09 09 | 69 66 20 28 20 63 75 72 |se {....|if ( cur|
|00002220| 73 6f 72 2d 3e 6f 70 20 | 3d 3d 20 49 4f 50 20 29 |sor->op |== IOP )|
|00002230| 0d 09 09 09 09 73 31 20 | 3d 20 2a 28 63 75 72 73 |.....s1 |= *(curs|
|00002240| 6f 72 2d 3e 70 70 74 72 | 2b 32 29 3b 0d 09 09 09 |or->pptr|+2);....|
|00002250| 65 6c 73 65 20 69 66 20 | 28 20 63 75 72 73 6f 72 |else if |( cursor|
|00002260| 2d 3e 6f 70 20 3d 3d 20 | 53 4f 50 20 29 0d 09 09 |->op == |SOP )...|
|00002270| 09 09 73 31 20 3d 20 2a | 28 63 75 72 73 6f 72 2d |..s1 = *|(cursor-|
|00002280| 3e 70 70 74 72 29 3b 0d | 09 09 09 65 6c 73 65 0d |>pptr);.|...else.|
|00002290| 09 09 09 09 73 31 20 3d | 20 2a 28 63 75 72 73 6f |....s1 =| *(curso|
|000022a0| 72 2d 3e 70 70 74 72 2b | 31 29 3b 0d 09 09 09 09 |r->pptr+|1);.....|
|000022b0| 0d 09 09 09 64 6f 6e 65 | 20 3d 20 30 3b 0d 09 09 |....done| = 0;...|
|000022c0| 09 63 70 72 65 76 20 3d | 20 63 20 3d 20 6e 65 77 |.cprev =| c = new|
|000022d0| 68 65 61 64 3b 0d 09 09 | 09 77 68 69 6c 65 20 28 |head;...|.while (|
|000022e0| 63 20 21 3d 20 4e 49 4c | 20 26 26 20 21 64 6f 6e |c != NIL| && !don|
|000022f0| 65 29 20 7b 0d 09 09 09 | 09 69 66 20 28 20 63 2d |e) {....|.if ( c-|
|00002300| 3e 6f 70 20 3d 3d 20 49 | 4f 50 20 29 0d 09 09 09 |>op == I|OP )....|
|00002310| 09 09 73 32 20 3d 20 2a | 28 63 2d 3e 70 70 74 72 |..s2 = *|(c->pptr|
|00002320| 2b 32 29 3b 0d 09 09 09 | 09 65 6c 73 65 20 69 66 |+2);....|.else if|
|00002330| 20 28 20 63 2d 3e 6f 70 | 20 3d 3d 20 53 4f 50 20 | ( c->op| == SOP |
|00002340| 29 0d 09 09 09 09 09 73 | 32 20 3d 20 2a 28 63 2d |)......s|2 = *(c-|
|00002350| 3e 70 70 74 72 29 3b 0d | 09 09 09 09 65 6c 73 65 |>pptr);.|....else|
|00002360| 0d 09 09 09 09 09 73 32 | 20 3d 20 2a 28 63 2d 3e |......s2| = *(c->|
|00002370| 70 70 74 72 2b 31 29 3b | 0d 09 09 09 0d 09 09 09 |pptr+1);|........|
|00002380| 09 69 66 20 28 20 73 31 | 20 3c 20 73 32 20 29 20 |.if ( s1| < s2 ) |
|00002390| 7b 0d 09 09 09 09 09 69 | 66 20 28 63 20 3d 3d 20 |{......i|f (c == |
|000023a0| 6e 65 77 68 65 61 64 29 | 20 7b 0d 09 09 09 09 09 |newhead)| {......|
|000023b0| 09 2f 2a 20 69 6e 73 65 | 72 74 20 62 65 66 6f 72 |./* inse|rt befor|
|000023c0| 65 20 6e 65 77 68 65 61 | 64 20 2a 2f 0d 09 09 09 |e newhea|d */....|
|000023d0| 09 09 09 63 75 72 73 6f | 72 2d 3e 6e 65 78 74 20 |...curso|r->next |
|000023e0| 3d 20 6e 65 77 68 65 61 | 64 3b 0d 09 09 09 09 09 |= newhea|d;......|
|000023f0| 09 6e 65 77 68 65 61 64 | 20 3d 20 63 75 72 73 6f |.newhead| = curso|
|00002400| 72 3b 0d 09 09 09 09 09 | 09 64 6f 6e 65 20 3d 20 |r;......|.done = |
|00002410| 31 3b 0d 09 09 09 09 09 | 7d 0d 09 09 09 09 09 65 |1;......|}......e|
|00002420| 6c 73 65 20 7b 0d 09 09 | 09 09 09 09 63 70 72 65 |lse {...|....cpre|
|00002430| 76 2d 3e 6e 65 78 74 20 | 3d 20 63 75 72 73 6f 72 |v->next |= cursor|
|00002440| 3b 0d 09 09 09 09 09 09 | 63 75 72 73 6f 72 2d 3e |;.......|cursor->|
|00002450| 6e 65 78 74 20 3d 20 63 | 3b 0d 09 09 09 09 09 09 |next = c|;.......|
|00002460| 64 6f 6e 65 20 3d 20 31 | 3b 0d 09 09 09 09 09 7d |done = 1|;......}|
|00002470| 0d 09 09 09 09 7d 0d 09 | 09 09 09 65 6c 73 65 0d |.....}..|...else.|
|00002480| 09 09 09 09 09 63 70 72 | 65 76 20 3d 20 63 3b 0d |.....cpr|ev = c;.|
|00002490| 09 09 09 09 63 20 3d 20 | 63 2d 3e 6e 65 78 74 3b |....c = |c->next;|
|000024a0| 0d 09 09 09 7d 0d 09 09 | 09 69 66 20 28 21 64 6f |....}...|.if (!do|
|000024b0| 6e 65 29 20 7b 0d 09 09 | 09 09 63 70 72 65 76 2d |ne) {...|..cprev-|
|000024c0| 3e 6e 65 78 74 20 3d 20 | 63 75 72 73 6f 72 3b 0d |>next = |cursor;.|
|000024d0| 09 09 09 09 63 75 72 73 | 6f 72 2d 3e 6e 65 78 74 |....curs|or->next|
|000024e0| 20 3d 20 4e 49 4c 3b 0d | 09 09 09 7d 0d 09 09 7d | = NIL;.|...}...}|
|000024f0| 0d 09 09 63 75 72 73 6f | 72 20 3d 20 74 68 65 4e |...curso|r = theN|
|00002500| 65 78 74 3b 0d 09 09 74 | 68 65 4e 65 78 74 20 3d |ext;...t|heNext =|
|00002510| 20 63 75 72 73 6f 72 2d | 3e 6e 65 78 74 3b 0d 0d | cursor-|>next;..|
|00002520| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 28 6e 65 77 68 |..}..ret|urn(newh|
|00002530| 65 61 64 29 3b 0d 7d 0d | 2f 2a 2d 2d 2d 2d 2d 2d |ead);.}.|/*------|
|00002540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 76 6f 69 64 |--------|-*/.void|
|00002590| 09 50 63 68 65 63 6b 5f | 6c 69 73 74 28 6c 69 73 |.Pcheck_|list(lis|
|000025a0| 74 29 0d 09 45 76 65 6e | 74 20 2a 6c 69 73 74 3b |t)..Even|t *list;|
|000025b0| 0d 7b 0d 09 2f 2a 20 70 | 72 69 6e 74 73 20 65 76 |.{../* p|rints ev|
|000025c0| 65 6e 74 20 6c 69 73 74 | 20 74 6f 20 73 63 72 65 |ent list| to scre|
|000025d0| 65 6e 20 66 6f 72 20 64 | 65 62 75 67 67 69 6e 67 |en for d|ebugging|
|000025e0| 20 70 75 72 70 6f 73 65 | 73 20 2a 2f 0d 0d 09 72 | purpose|s */...r|
|000025f0| 65 67 69 73 74 65 72 20 | 69 6e 74 20 69 3b 0d 09 |egister |int i;..|
|00002600| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 6e 3b 0d |register| int n;.|
|00002610| 09 45 76 65 6e 74 20 2a | 63 75 72 73 6f 72 3b 0d |.Event *|cursor;.|
|00002620| 0d 09 69 66 20 28 20 21 | 6f 75 74 32 5f 66 6c 61 |..if ( !|out2_fla|
|00002630| 67 29 0d 09 09 72 65 74 | 75 72 6e 3b 0d 09 63 75 |g)...ret|urn;..cu|
|00002640| 72 73 6f 72 20 3d 20 6c | 69 73 74 3b 0d 09 77 68 |rsor = l|ist;..wh|
|00002650| 69 6c 65 20 28 20 63 75 | 72 73 6f 72 20 21 3d 20 |ile ( cu|rsor != |
|00002660| 4e 49 4c 20 29 20 7b 0d | 09 09 6e 20 3d 20 30 3b |NIL ) {.|..n = 0;|
|00002670| 0d 09 09 66 70 72 69 6e | 74 66 28 20 73 74 64 65 |...fprin|tf( stde|
|00002680| 72 72 2c 20 22 25 64 22 | 2c 20 63 75 72 73 6f 72 |rr, "%d"|, cursor|
|00002690| 2d 3e 6f 70 29 3b 0d 09 | 09 66 70 72 69 6e 74 66 |->op);..|.fprintf|
|000026a0| 28 20 73 74 64 65 72 72 | 2c 20 22 20 25 64 22 2c |( stderr|, " %d",|
|000026b0| 20 63 75 72 73 6f 72 2d | 3e 6e 61 72 67 73 29 3b | cursor-|>nargs);|
|000026c0| 0d 09 09 66 6f 72 20 28 | 20 69 20 3d 20 30 3b 20 |...for (| i = 0; |
|000026d0| 69 3c 20 63 75 72 73 6f | 72 2d 3e 6e 61 72 67 73 |i< curso|r->nargs|
|000026e0| 3b 20 69 2b 2b 29 20 7b | 0d 09 09 09 6e 2b 2b 3b |; i++) {|....n++;|
|000026f0| 0d 09 09 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |....fpri|ntf(stde|
|00002700| 72 72 2c 20 22 20 25 38 | 2e 33 66 22 2c 20 2a 28 |rr, " %8|.3f", *(|
|00002710| 63 75 72 73 6f 72 2d 3e | 70 70 74 72 2b 69 29 29 |cursor->|pptr+i))|
|00002720| 3b 0d 09 09 09 69 66 20 | 28 20 6e 20 25 20 38 20 |;....if |( n % 8 |
|00002730| 3d 3d 20 30 20 29 20 7b | 0d 09 09 09 09 69 66 20 |== 0 ) {|.....if |
|00002740| 28 20 69 20 3c 20 63 75 | 72 73 6f 72 2d 3e 6e 61 |( i < cu|rsor->na|
|00002750| 72 67 73 2d 31 29 20 7b | 0d 09 09 09 09 09 66 70 |rgs-1) {|......fp|
|00002760| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 22 5c 6e |rintf(st|derr,"\n|
|00002770| 22 29 3b 0d 09 09 09 09 | 09 66 70 72 69 6e 74 66 |");.....|.fprintf|
|00002780| 28 73 74 64 65 72 72 2c | 22 5c 74 22 29 3b 0d 09 |(stderr,|"\t");..|
|00002790| 09 09 09 7d 0d 09 09 09 | 7d 0d 09 09 7d 0d 09 09 |...}....|}...}...|
|000027a0| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 22 |fprintf(|stderr,"|
|000027b0| 5c 6e 22 29 3b 0d 09 09 | 63 75 72 73 6f 72 20 3d |\n");...|cursor =|
|000027c0| 20 63 75 72 73 6f 72 2d | 3e 6e 65 78 74 3b 0d 09 | cursor-|>next;..|
|000027d0| 7d 0d 09 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |}...fpri|ntf(stde|
|000027e0| 72 72 2c 22 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |rr,"----|--------|
|000027f0| 65 6e 64 20 6f 66 20 6c | 69 73 74 5c 6e 22 29 3b |end of l|ist\n");|
|00002800| 0d 7d 09 2f 2a 20 50 63 | 68 65 63 6b 5f 6c 69 73 |.}./* Pc|heck_lis|
|00002810| 74 20 2a 2f 0d 0d 00 00 | 00 00 00 00 00 00 00 00 |t */....|........|
|00002820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002880| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 46 |........|.......F|
|00002890| 7b 0d 09 09 44 69 73 70 | 6f 73 50 74 72 28 28 50 |{...Disp|osPtr((P|
|000028a0| 74 72 29 28 69 73 6f 72 | 74 2b 69 29 29 3b 0d 09 |tr)(isor|t+i));..|
|000028b0| 07 70 61 73 73 32 2e 63 | 02 00 00 00 00 00 00 00 |.pass2.c|........|
|000028c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 0c 23 |........|.......#|
|000028d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000028e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000028f0| 00 00 a3 14 39 25 00 00 | 00 00 00 00 01 5c 2d 2d |....9%..|.....\--|
|00002900| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0d 0d 2d 2d 2d 2d 2d |-------*|/..-----|
|00002910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00002920| 0d 0d 20 67 72 6f 75 70 | 20 25 64 20 75 73 65 73 |.. group| %d uses|
|00002930| 20 69 6e 73 74 72 75 6d | 65 6e 74 20 6e 75 6d 62 | instrum|ent numb|
|00002940| 65 72 73 20 25 64 20 74 | 6f 20 25 64 5c 6e 22 2c |ers %d t|o %d\n",|
|00002950| 0d 09 09 09 09 6e 2c 20 | 6e 6c 6f 77 2c 20 6c 61 |.....n, |nlow, la|
|00002960| 72 67 65 29 3b 0d 09 09 | 7d 0d 09 09 6c 61 73 74 |rge);...|}...last|
|00002970| 6c 20 3d 20 4d 41 58 28 | 6c 61 72 67 65 2c 20 6c |l = MAX(|large, l|
|00002980| 00 00 00 04 00 06 00 04 | 00 00 00 0a 00 0a 07 43 |........|.......C|
|00002990| 6f 75 72 69 65 72 00 00 | 01 00 00 00 01 16 00 00 |ourier..|........|
|000029a0| 00 16 00 00 00 46 00 29 | 2c c0 05 26 00 00 00 1c |.....F.)|,..&....|
|000029b0| 00 46 00 01 45 54 41 42 | 00 00 00 12 45 46 4e 54 |.F..ETAB|....EFNT|
|000029c0| 00 00 00 1e 03 ec ff ff | 00 00 00 00 00 29 2c 4c |........|.....),L|
|000029d0| 03 eb ff ff 00 00 00 08 | 00 29 2c bc 00 00 00 00 |........|.),.....|
|000029e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000029f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+